1. Field of the Invention
The present invention relates to a decoding system and method applicable to, for example, distributed video coding.
2. Description of the Related Art
Distributed video coding (DVC) is a coding method that has been attracting considerable attention (see. Aaron et al., ‘Transform-Domain Wyner-Ziv Codec for Video’, Proc. SPIE Visual Communications and Image Processing, 2004). In DVC coding, an image is encoded by an intraframe coding process that produces data bits and parity bits and the parity bits are sent to the decoder. The decoder decodes the parity bits with reference to a predicted image generated by, for example, interpolation or extrapolation from other frames.
More specifically, a video image sequence is divided into Wyner-Ziv frames, to which the above coding and decoding process is applied, and key frames, to which conventional intraframe coding and decoding are applied. A discrete cosine transform (DCT) is used to transform each Wyner-Ziv frame to the coefficient domain, the coefficients are grouped into bands, the coefficients in the k-th band are quantized by a 2Mk-level quantizer, the quantized coefficients (qk) are expressed in fixed numbers of bits, and the bit planes are extracted and supplied to a Slepian-Wolf encoder, which is a type of turbo encoder that produces the data bits and parity bits. The parity bits are stored in a buffer for transmission to the decoder. The data bits are discarded (as implied but not explicitly shown by Aaron et al.).
The decoder generates the predicted image, applies a DCT to convert the predicted image to the coefficient domain, groups the coefficients into bands, and inputs the coefficients in each band as side information to a Slepian-Wolf decoder (a type of turbo decoder). The Slepian-Wolf decoder requests the parity bits it needs as error-correcting information to correct prediction errors in the side information, thereby decoding the parity bits. If necessary, further parity bits can be requested and the turbo decoding process can be repeated until a satisfactory decoded result is obtained. An inverse discrete cosine transform (IDCT) is then used to reconstruct the image.
The coding efficiency in this process can be improved by updating the side information during the decoding process to improve the accuracy of the side information, so that there are fewer errors and fewer parity bits are needed to correct them. A known technique is to estimate motion vectors from the result of one stage of the Slepian-Wolf decoding process and then generate new side information for the next stage by using the motion vectors to perform motion compensation.
A scheme of this type in which the successive stages are successive iterations of the decoding of a frame is described by Artigas et al. in ‘Iterative Generation of Motion-Compensated Side Information for Distributed Video Coding’, Proc. IEEE International Conference on Image Processing, 2005, pp. 833-836.
An alternative scheme in which the successive stages are the decoding of successive bit planes is described by Adikari et al. in ‘A Sequential Motion Compensation Refinement Technique for Distributed Video coding of Wyner-Ziv Frames’, Proc. IEEE International Conference on Image Processing, 2006, pp. 597-600.
A problem in both of these schemes is that the decoding process assumes a fixed statistical correlation between the side information and the data bits that were generated (and discarded) in the encoder. As the decoding process proceeds and the side information becomes increasingly accurate, the assumed correlation becomes increasingly incorrect. As a result, the decoder may request more parity bits than necessary, and there is the possibility of inadvertent ‘correction’ of non-errors. The coding efficiency is therefore impaired because extra parity bits are needed to obtain a decoded image of acceptable quality.